package day06;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Scanner;

/*
歌手比赛上，n位评委即将为各位选手打分，请设计出一个为选手获取最终平均分的一系列方法。
1.录入每位评委的分数
2.将分数计算平均分
 */
public class CalTotalAvg {
    public static double[] inputScores(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入评委的数量：");
        int n = scanner.nextInt();
        double[] scores = new double[n];
        for (int i = 1; i <=n; i++) {
            System.out.println("请输入第"+i+"位评委的分数：");
            double score = scanner.nextDouble();
            scores[i-1] = score;
        }
        return scores;
    }
    public static double[] removeExtreme(double[] scores){
        Arrays.sort(scores);
        scores[0] = 0;
        scores[scores.length-1] = 0;
        return scores;
    }
    public static String calculateAverage(double[] scores){
        double sum = 0;
        for (double num:scores){
            sum+=num;
        }
        DecimalFormat df = new DecimalFormat("#.00");
        return df.format(sum/scores.length);
    }
    //1.缺乏输入数据的合法性验证 2.输出结果没有进行格式化处理 DecimalFormat 3.去除最高分最低分的方法不合理
    public static void main(String[] args) {
        double[] scores = inputScores();
        double[] newScores = removeExtreme(scores);
        String average = calculateAverage(newScores);
        System.out.println("所有评委分数去掉最高和最低后的平均数为："+average);
    }
}
